package View; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableModel; public class FilteredTableModel extends AbstractTableModel { /** * */ private static final long serialVersionUID = 1L; int nrRows = 1; private String[] columnNames = {"Acc ID", "Acc Type", "Client ID", "Name", "Address", "Balance"}; private Object[][] data = new Object[][]{{"","","","","",""}}; public int getColumnCount() { return columnNames.length; } public String getColumnName(int col) { return columnNames[col]; } public int getRowCount() { return data.length; } public Object[] getRowAt(int row) { return data[row]; } public Object getValueAt(int row, int col) { if ((data.length > row) && (row >= 0)) { return data[row][col]; } else { return null; } } public void setData(Object[][] p) { data = new Object[p.length + 1][6]; // Object p1; for (int i = 0; i < p.length; i++) { // p1 = p[i]; if(p[i][0]!=null){ data[i] = p[i]; } else { data[i]=new Object[]{"", "", "", "","",""}; } } data[data.length - 1] = new Object[]{"", "", "", "","",""}; nrRows = data.length; fireTableStructureChanged(); } public void setRow(Object[] o, int row) { if ((row == data.length) && (o != null)) { if (o[0].equals("")) { return; } Object[][] data1 = new Object[data.length + 1][data[0].length]; for (int i = 0; i < data.length; i++) { data1[i] = data[i]; } data1[row - 1] = o; data1[row] = new Object[]{"","", "", "", "","", ""}; data = data1; } else if (o == null) { if (data.length == 1) { data[0] = new Object[]{"", "", "", "","",""}; } else { Object[][] data1 = new Object[data.length - 1][7]; System.arraycopy(data, 0, data1, 0, row); for (int i = row + 1; i < data.length; i++) { data1[i - 1] = data[i]; } data = data1; } } else { data[row] = o; } } public void setValueAt(Object value, int row, int col) { if (row == data.length) { Object[][] data1 = new Object[data.length + 1][data[0].length]; for (int i = data.length - 1; i >= 0; i--) { data1[i] = data[i]; } data1[row] = data[row]; data = data1; } data[row][col] = value; fireTableCellUpdated(row, col); } public static int getRow(TableModel model, Object o) { int row = 0; for (int i = model.getRowCount() - 1; i >= 0; i--) { for (int j = model.getColumnCount() - 1; j >= 0; j--) { if (model.getValueAt(i, j).equals(o)) { row = i; } } } return row; } }